package com.uzai.console.service.mini;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.BaseDto;
import com.uzai.console.dto.mini.deviceminiinfo.*;
import com.uzai.console.jsonvo.mini.AccountBasicInfo;
import com.uzai.console.vo.mini.deviceminiinfo.ComponentAuthVo;
import com.uzai.console.vo.mini.deviceminiinfo.DeviceMiniInfoVo;
import com.uzai.console.vo.mini.deviceminiinfo.FastRegisterAuthVo;
import com.uzai.console.vo.mini.deviceminiinfo.WxpubSelectKeyVo;

import java.util.List;

/**
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface DeviceMiniInfoService {

    /**
     * 分页查询小程序授权管理
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    Page<DeviceMiniInfoVo> findDeviceMiniInfoByPage(DeviceMiniInfoQuery deviceMiniInfoQuery);


    /**
     * 查询小程序授权管理详情
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    DeviceMiniInfoVo findDeviceMiniInfoById(DeviceMiniInfoIdDto deviceMiniInfoIdDto);

    /**
     * 复用公众号获取快速创建小程序url
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    FastRegisterAuthVo fastregisterCreateUrl(FastregisterCreateUrlDto fastregisterCreateUrlDto);

    /**
     * 复用公众号快速创建小程序授权回调之后创建小程序
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    void fastregisterCallback(String status, String ticket);


    /**
     * 查询复用公众号列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    List<WxpubSelectKeyVo> findWxpubList(BaseDto baseDto);

    /**
     * 小程序授权创建url
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    ComponentAuthVo authCreateUrl(AuthCreateUrlDto componentAuthDto);

    /**
     * 小程序授权回调函数
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    void authCallback(String status, String auth_code, Integer expires_in);

    /**
     * 小程序授权设置支付信息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    void setPayinfo(SetPayInfoDto setPayInfoDto);

    /**
     * 获取不限制的小程序码
     *
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    String getUnlimitedQRCode(DeviceMiniInfoIdDto deviceMiniInfoIdDto);

    /**
     * 小程序授权设置订阅消息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    void setMsgTemplate(SetMsgTemplateDto setMsgTemplateDto);

    /**
     * 获取小程序基本信息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    AccountBasicInfo getAccountBasicInfo(DeviceMiniInfoIdDto deviceMiniInfoIdDto);

    /**
     * 删除小程序授权
     *
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void deleteDeviceMiniInfo(DeviceMiniInfoIdDto deviceMiniInfoIdDto);


}
